// 分类模块
import { findAllCategory } from '@/api/category'
import { topCategory } from '@/api/constants'
export default {
    namespaced: true,
    state: () => {
        return {
            // 给予默认数据 避免请求加载时数据为空白屏
            // ?. 链判断运算符
            // map方法返回一个数组 对原始数组中的每一项运行给定的函数，然后按原数组的顺序组装成新的数组 区分Map对象
            list: topCategory.map(item => ({ name: item }))
        }
    },
    mutations: {
        // headCategory 是拿到的分类数据
        setList(state, headCategory) {
            state.list = headCategory
        },

        // 定义show与hidden函数 控制二级分类的显示与隐藏
        show (state,id){
            const currCategory = state.list.find(item=>item.id==id)
            currCategory.open = true
        },
        hidden(state,id){
            const currCategory = state.list.find(item=>item.id==id)
            currCategory.open = false
        }
    },
    actions: {
        async getList({ commit }) {
            // 获取数据
            const { result } = await findAllCategory()
            //给每个分类加上控制二级类目显示隐藏的按钮 
            result.forEach(item => {
                item.open = false
            })
            // 修改数据
            commit('setList', result)
        }
    }
}